iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
0
自我挑戰組

大學 50 萬貸款的交代系列 第 19

Day 19 _ PHP mysqli 簡易使用指南

  • 分享至 

  • xImage
  •  

在 Day 18 我們分別介紹了 mysql, mysqli, PDO 三者的差異,從Day 19開始要比較詳細的介紹每個 function 的用法。
因為 mysql 的語法已經被棄用了,我們就直接從 mysqli 開始吧٩(。・ω・。)و

與資料庫建立連線

要到別人家登門歡樂送之前都會先通知對方(嗎?)
要對資料庫進行操作也需要先連線。

$db = new mysqli(資料庫IP, 登入ID, 登入密碼, 資料庫名稱);

像這樣子寫就可以建立一個連線的物件。下面實際來個例子

資料庫IP = '127.0.0.1'
登入ID = 'root'
登入密碼 = ''
資料庫名稱='foo'

$db = new mysqli('127.0.0.1', 'root', '', 'foo');

沒錯,XAMPP 的 root 帳號是沒有密碼的,同時它還擁有至高無上的權限。要更改權限可以在 phpmyadmin 的 privileges 更改。

操作資料庫

我們以 Day14 新增資料為例
如果要在下面這樣的資料庫新增一筆新的資料

可以這樣寫

$newUserID = 'User87';
$newUserPassword='123456';
$sql = "INSERT INTO `account` (UserID,password) VALUES (?, PASSWORD(?))";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('ss',$newUserID,$newUserPassword);
$stmt->execute();

這裡的做法是,先把 SQL 中要讓使用者填入的資料,以?代替。之後再使用 bind_param 將資料依序塞入?的位置。
bind_param 第一個參數是要說明後面接下來的幾個變數要用什麼型態來看它們。像是上面例子是寫ss就表示後面兩個都當成字串來看。後面在街上相對應數量的變數,最後再使用 $stmt->execute();執行 SQL 語法即可。

這裡有幾個以前犯過的錯誤在這裡分享

  1. bind_param裡面要填入的資料要是一個變數不能是資料本身
  2. 欄位名稱不能透過 binding function 填入


上一篇
Day 18 _ PHP 上的 SQL Function 比較
下一篇
Day 20 _ PDO 簡易使用指南
系列文
大學 50 萬貸款的交代30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言